package cn.wenhe9.yygh.user.service;

import cn.wenhe9.yygh.common.result.ResultResponse;
import cn.wenhe9.yygh.model.user.UserInfo;
import cn.wenhe9.yygh.model.vo.user.LoginVo;
import cn.wenhe9.yygh.model.vo.user.UserAuthVo;
import cn.wenhe9.yygh.model.vo.user.UserInfoQueryVo;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * @author DuJinliang
 * 2022/4/4
 */
public interface UserInfoService extends IService<UserInfo> {
    /**
     * 用户手机号登录
     * @param loginVo LoginVo
     * @return ResultResponse
     */
    ResultResponse loginUser(LoginVo loginVo);

    /**
     * 根据userId进行用户认证
     * @param userId Long
     * @param userAuthVo UserAuthVo
     * @return ResultResponse
     */
    ResultResponse userAuth(Long userId, UserAuthVo userAuthVo);

    /**
     * 分页查询用户信息
     * @param page Long
     * @param limit Long
     * @param userInfoQueryVo UserInfoQueryVo
     * @return ResultResponse
     */
    ResultResponse findUserInfoByPage(Long page, Long limit, UserInfoQueryVo userInfoQueryVo);

    /**
     * 用户锁定
     * @param userId Long
     * @param status Integer
     * @return
     */
    ResultResponse lockUser(Long userId, Integer status);

    /**
     * 查询用户详情
     * @param userId Long
     * @return ResultResponse
     */
    ResultResponse getUserDetailById(Long userId);

    /**
     * 认证审批
     * @param userId Long
     * @param authStatus Integer
     * @return ResultResponse
     */
    ResultResponse approval(Long userId, Integer authStatus);
}
